const readline = require('readline-sync');

/* 
    1 1
    1 un
    函数的执行？调用的顺序
    函数内部也可以调用函数
    形参没有接收到值是 un

*/
// let fn1 = function (b) {
//     console.log(b);
// }
// let fn2 = function (a) {
//     console.log(a);
//     fn1();
// }
// fn2(1);

/* 
    0 0
*/
// let fn1 = function () {
//     let i = 0; // 局部
//     fn2(i);
// }
// let fn2 = function (a) { // 0
//     console.log(a); // 0
//     fn3(a);
// }
// let fn3 = function (x) { // 0
//     console.log(x); // 0
// }
// fn1();

/**
 * 1 10
 */
// let a = 1; // 全局
// let fn = function (b) { // 10
//     console.log(a);
//     console.log(b);
// }
// fn(10);


/** un 1 */
// let a = 1;
// let fn = function (a) {
//     console.log(a); // un
// }
// fn();
// console.log(a);

/** 10  */
// let a = 10;
// let fn1 = function () {
//     let a = 1;
// }
// let fn2 = function () {
//     fn1();
//     console.log(a);
// }
// fn2();

/** 1 */
// let a = 10;
// let fn1 = function () {
//     let a = 1;
//     fn2(a);// 1
// }
// let fn2 = function (a) { // 1
//     console.log(a); 
// }
// fn1();

// 作用域 链
// let a = 10;
// let fn1 = function () {
//     // let a = 1;
//     let fn2 = function () {
//         console.log(a); // 1
//     }
//     fn2();
// }
// fn1();

/** 1 1 */
// let a = 1;
// let fn = function () {
//     console.log(a);
//     if (!a) {
//         a = 10;
//     }
//     console.log(a);
// }
// fn();

// function fn(a, b) {
//     console.log(a, b);
// }
// fn(1, 2);

// function fn(a, b = 0) {
//     console.log(a, b);
// }
// fn(1);

// function fn(a, b = 0) {
//     console.log(a, b);
// }
// fn(1, 2);


// function fn(a, ...rest) {
//     console.log(a);
//     console.log(rest);
// }
// fn(1, 2, 3, 4, 5);

// []=[]

// function foo(a) { // [1,2,3]
//     a[0]
//     a[1]
// }
// foo([1, 2, 3]);

// function foo([a,b,c]) { 
//     a // 1
//     b // 2
//     c // 3
// }
// foo([1, 2, 3]);

// let arr = [];
// arr.filter().map().join(); // lodash 链式操作 返回值类型明确
// arr.some().map();

// for (let i = 0; i < 5; i++) {
//     //...
// }
// console.log(i); // i 5


// i=1;
// for (let i = 1; i < 10; i++) {
//     //...
// }

// 变量污染


